<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数据代理的实现原理</title>
</head>
<body>

<script type="text/javascript">
    //模拟程序员传的数据data 存入_data中
    let _data = {
        name: '孙悟空'
    }
    //模拟一个vm
    let vm={
        $attr:"123",
        $listeners:[],
        $a:1,
        $b:2
    }
    //增强对象用
    Object.defineProperty(vm,'name',{
        /*value:_data.name,
        writable:true,//控制追加的属性.是否可以被修改, 默认是false
        configurable:true,//控制是否被删除 默认值是false
        enumerable:true//是否被枚举 遍历 默认是false*/
        get(){
            console.log('有人读取vm.name啦')
            return _data.name
        },
        set(v) {
            console.log('数据修改啦')
            _data.name=v
        }
    })
    vm.name='猪八戒'
    console.log(vm.name)
</script>
</body>
</html>